package com.iretailer.report.util;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

@Component
public class SpringUtils implements ApplicationContextAware {
	
	 // Spring应用上下文环境  
    private static ApplicationContext applicationContext;
	

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		SpringUtils.applicationContext = applicationContext; 
	}
	
	public static ApplicationContext getApplicationContext(){
		return applicationContext;
	}

	/**
	 * 通过name 获取Bean
	 * @param bean
	 * @return
	 */
	public static Object getBean(String bean){
		return applicationContext.getBean(bean);
	}

	/**
	 * 通过class 获取bean
	 * @param clazz
	 * @param <T>
	 * @return
	 */
	public static<T> T getBean(Class<T> clazz){
		return getApplicationContext().getBean(clazz);
	}

}
